

#ifndef __CCE_MATERIAL_MATERIALPROGRAMTREEMODEL_H__
#define __CCE_MATERIAL_MATERIALPROGRAMTREEMODEL_H__

#include <material/materialmanager.h>
#include <qabstractitemmodel.h>

class cceMaterialProgramTreeModel : public QAbstractItemModel
{
	Q_OBJECT
public:
	enum Columns
	{
		Column_Name,
		Column_COUNT
	};

private:
	cceMaterialManager*	_mgr;

private slots:
	void ResetContent ();

public:
	cceMaterialProgramTreeModel (cceMaterialManager* mgr);

	int columnCount (const QModelIndex &parent = QModelIndex()) const;
	QVariant data (const QModelIndex &index, int role = Qt::DisplayRole) const;
	QModelIndex index (int row, int column, const QModelIndex &parent = QModelIndex()) const;
	QModelIndex parent (const QModelIndex &index) const;
	int rowCount (const QModelIndex &parent = QModelIndex()) const;
	Qt::ItemFlags flags (const QModelIndex& index) const;


	QString GetProgramName (unsigned row) const;

  QMimeData* mimeData (const QModelIndexList &indexes) const;

	QVariant headerData (int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
};


#endif /* ! __CCE_MATERIAL_MATERIALPROGRAMTREEMODEL_H__ */

